package Checkin;
//@Jorge Neto

import Exceptions.*;
import java.util.ArrayList;

public class CadastroCheckin {

    public void inserirCheckin(String codreserva, String passaport, String ultprocedencia,
            String proxdestino, String checkin, String checkout, String numquarto,
            String cofre, String valordiaria, String acompanhantes, String observacoes,
            String formpagamento, String dadospagamento, String atendente)
            throws PassaportVazioCheckinException, ValorDiariaVazioCheckinException,
            AcompanhantesVazioCheckinException, FormpagamentoVazioCheckinException,
            AtendenteVazioCheckinException {

        if (codreserva.trim().length() < 0) {
            //throw new CodreservaVazioException();
        } else if (passaport.trim().length() < 0) {
            throw new PassaportVazioCheckinException();
        } else if (valordiaria.trim().length() < 0) {
            throw new ValorDiariaVazioCheckinException();
        } else if (acompanhantes.trim().length() < 0) {
            throw new AcompanhantesVazioCheckinException(); 
        } else if (formpagamento.trim().length() < 0) {
            throw new FormpagamentoVazioCheckinException();
        } else if (atendente.trim().length() < 0) {
            throw new AtendenteVazioCheckinException();
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            chk.inserirCheckin(codreserva, passaport, ultprocedencia,
                    proxdestino, checkin, checkout, numquarto, cofre,
                    valordiaria, acompanhantes, observacoes, formpagamento,
                    dadospagamento, atendente);
        }
    }

    public void alterarCheckin(String passaport, String ultprocedencia,
            String proxdestino, String checkin, String checkout, String numquarto,
            String cofre, String valordiaria, String acompanhantes, String observacoes,
            String formpagamento, String dadospagamento, String atendente, String codreserva)
            throws PassaportVazioCheckinException, ValorDiariaVazioCheckinException,
            AcompanhantesVazioCheckinException, FormpagamentoVazioCheckinException,
            AtendenteVazioCheckinException {

        if (codreserva.trim().length() < 0) {
            //CodreservaVazioException
        } else if (passaport.trim().length() < 0) {
            throw new PassaportVazioCheckinException();
        } else if (valordiaria.trim().length() < 0) {
            throw new ValorDiariaVazioCheckinException();
        } else if (acompanhantes.trim().length() < 0) {
            throw new AcompanhantesVazioCheckinException();
        } else if (formpagamento.trim().length() < 0) {
            throw new FormpagamentoVazioCheckinException();
        } else if (atendente.trim().length() < 0) {
            throw new AtendenteVazioCheckinException();
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            chk.alterarCheckin(passaport, ultprocedencia, proxdestino, checkin,
                    checkout, numquarto, cofre, valordiaria, acompanhantes,
                    observacoes, formpagamento, dadospagamento, atendente, codreserva);
        }
    }

    public void excluirCheckin(int codReserva) throws PassaportVazioCheckinException {
        
        if (codReserva < 0) {
            throw new PassaportVazioCheckinException();
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            chk.excluirCheckin(codReserva);
        }        
    }

    public ArrayList consultarCheckinPorCodReserva(String codReserva) {
        
        ArrayList list;
        
        if (codReserva.trim().length() < 0) {
            //CodreservaVazioException
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            list = chk.consultarCheckinPorCodReserva(codReserva);    
            return list;
        }        
        return null;
    }

    public ArrayList consultarCheckinPorPassaport(String passaport) 
    throws PassaportVazioCheckinException {
        
        ArrayList list;
        
        if (passaport.trim().length() < 0) {
            throw new PassaportVazioCheckinException();
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            list = chk.consultarCheckinPorPassaport(passaport);    
            return list;
        }                
    }

    public ArrayList consultarCheckinPorDataEntrada(String dataEntrada) {
        
        ArrayList list;
        
        if (dataEntrada.trim().length() < 0) {
            //CodreservaVazioException
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            list = chk.consultarCheckinPorDataEntrada(dataEntrada);    
            return list;
        }        
        return null;
        
    }

    public ArrayList consultarCheckinPorDataSaida(String dataSaida) {
        
        ArrayList list;
        
        if (dataSaida.trim().length() < 0) {
            //DataSaidaVazioException
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            list = chk.consultarCheckinPorDataSaida(dataSaida);    
            return list;
        }        
        return null;
        
    }

    public ArrayList consultarCheckinPorNumQuarto(String numQuarto) {
        
        ArrayList list;
        
        if (numQuarto.trim().length() < 0) {
            //CodreservaVazioException
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            list = chk.consultarCheckinPorNumQuarto(numQuarto);    
            return list;
        }        
        return null;
        
    }

    public ArrayList consultarCheckinPorAtendente(String atendente) 
            throws AtendenteVazioCheckinException {
        
        ArrayList list;
        
        if (atendente.trim().length() < 0) {
            throw new AtendenteVazioCheckinException();
        } else {
            InterfaceCheckin chk = new RepositorioCheckin();
            list = chk.consultarCheckinPorAtendente(atendente);    
            return list;
        }        
    }
}
